package test;

import java.util.Random;

public class Vecteur {
	private double tab[];
	
	public Vecteur(int n){
		tab = new double[n];
		for (int i = 0; i < tab.length; i++) {
			tab[i] = 0;
		}
	}
	
	public void randomFill(Random r, double limit){
		for (int i = 0; i < tab.length; i++) {
			tab[i] = r.nextDouble() * limit;
		}
	}
	
	public int size(){ return tab.length;}
	
	public Vecteur add(Vecteur v){
		if( v.size() != size() ){
			return null;
		}
		Vecteur res = new Vecteur(v.size());
		for (int i = 0; i < size(); i++) {
			res.tab[i] = tab[i] + v.tab[i];
		}
		return res;
	}
	
	public double mult(Vecteur v) throws Exception{
		if( v.size() != size() ){
			throw new Exception();
		}
		double res = 0;
		for (int i = 0; i < size(); i++) {
			res += tab[i] * v.tab[i];
		}
		return res;
	}
	
	public Vecteur mult(double d){
		Vecteur res = new Vecteur(size());
		for (int i = 0; i < size(); i++) {
			res.tab[i] = tab[i] * d;
		}
		return res;
	}
	
	public double sum(){
		double res = 0;
		for (int i = 0; i < tab.length; i++) {
			res += tab[i];
		}
		return res;
	}
	
	public void set(int index, double value){
		tab[index] = value;
	}
	
	public double get(int index){
		return tab[index];
	}
	
	public String toString(){
		StringBuffer buf = new StringBuffer();
		buf.append("[ ");
		for (int i = 0; i < tab.length; i++) {
			buf.append(tab[i] + ", ");
		}
		buf.append("]");
		return buf.toString();
	}
	
	public double avg(){
		return sum()/size();
	}
}